import weakpass from './weakpass.json'

function checkWeakPass (pass) {
  return weakpass.findIndex(x => x === pass) > -1
}

export function checkStrong (pass) {
  if (pass === undefined || pass === '') {
    return -1
  } else if (checkWeakPass(pass)) {
    return -2
  }

  let score = 0

  if (pass.length < 5) {
    score += 5
  } else if (pass.length < 8) {
    score += 10
  } else {
    score += 8
  }

  let cap = /[a-z]/.test(pass) + /[A-Z]/.test(pass)
  score += cap * 10

  let num = pass.match(/[\d]/g)
  if (num) {
    if (num.length < 3) {
      score += 10
    } else {
      score += 20
    }
  }

  let not = pass.match(/[\W]/g)
  if (not) {
    if (not.length < 1) {
      score += 10
    } else {
      score += 25
    }
  }

  if (cap === 2 && num && not) {
    score += 5
  } else if (cap && num && not) {
    score += 3
  } else if (cap && not) {
    score += 2
  }

  // >= 90: 非常安全
  // >= 80: 安全（Secure）
  // >= 70: 非常强
  // >= 60: 强（Strong）
  // >= 50: 一般（Average）
  // >= 25: 弱（Weak）
  // >= 0: 非常弱
  // = -1: 密码不建议使用
  // = -2: 密码为空

  return score
}
